package cqrtplm.service;

import com.github.pagehelper.PageInfo;
import com.hustcad.plm.pdm.classification.model.vo.TyplmClassificationEntityTreeVO;
import com.hustcad.plm.pdm.type.model.vo.TypeTree;
import cqrtplm.dto.AttributeCardDTO;
import cqrtplm.dto.ClassificationDTO;
import cqrtplm.dto.FlexibleMatchDTO;
import cqrtplm.dto.RTAttributeCardDTO;
import cqrtplm.dto.query.QueryAttributeCardDTO;
import cqrtplm.entity.RTAttributeCardDO;
import cqrtplm.vo.DrawingCodeVO;
import cqrtplm.vo.RTCodeVO;

import java.math.BigInteger;
import java.util.List;
import java.util.Map;

public interface RTAttributeCardService {
    Map<String, Object> queryAttrCardDetail();

    RTAttributeCardDTO queryAttrCardDetailTWO();

    void insert(RTAttributeCardDTO rtAttributeCardDTO);

    PageInfo<RTAttributeCardDTO> list(QueryAttributeCardDTO dto);

    /**
     * 匹配属性卡片分类
     */
    ClassificationDTO flexibleMatch(FlexibleMatchDTO dto);

    void updateAttrCard(RTAttributeCardDTO rtAttributeCardDTO);

    void batchDeleteAttrCard(List<BigInteger> oidList);

    RTAttributeCardDO getDetailById(BigInteger oid);

    List<String> getExtendAttributeByRTAttributeCardDO(RTAttributeCardDO rtAttributeCardDO,String typeName);

    void createIbaAttribute(List<AttributeCardDTO> attributeList, BigInteger ibaGroupId);

    /**
     * 查询属性卡片的分类树
     */
    List<TyplmClassificationEntityTreeVO> queryAttrClassificationTree(String typeName, String categoryCode);

    /**
     * 查询图样代号
     */
    List<DrawingCodeVO> queryDrawingCode(String key);

    List<TypeTree> queryTypeTreeByOid();

    List<RTCodeVO> queryCode(RTCodeVO postdata);

    PageInfo<String> selectAllCode(Integer PageNum,Integer PageSize,String keyWork);

    List<Map<String, Object>> queryCategoryCodeAndName();

    List<String> queryProductSubcategory(String productLine);
}
